# 使用官方 Python 3.13 镜像作为基础镜像
FROM python:3.13-slim

# 设置工作目录
WORKDIR /app

# 安装系统依赖
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources && \
    apt-get update && apt-get install -y \
    gcc \
    default-libmysqlclient-dev \
    pkg-config \
    && rm -rf /var/lib/apt/lists/*

# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 安装 uv 包管理器
RUN pip install uv -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

# 复制项目依赖文件
COPY pyproject.toml uv.lock ./

# 安装依赖（仅生产依赖）
RUN uv sync --no-dev

# 复制应用代码
COPY . .

# 创建非 root 用户
RUN useradd --create-home --shell /bin/bash app \
    && chown -R app:app /app
USER app

# 暴露端口
EXPOSE 8000

# 启动命令
ENTRYPOINT ["/bin/sh","-c","\
    uv run sync_db.py && \
    uv run python -m uvicorn src.main:app --host 0.0.0.0 --port 8000"]
